package com.doitedu.hdfs.client;

import com.doitedu.hdfs.utils.MyUtils;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;

/**
 * @Date 2021/11/30
 * @Created by HANGGE
 * @Description
 * 在指定的位置开始读取数据 , 记录数据的长度   随机读取数据
 */
public class C06_ReadData {
    public static void main(String[] args)throws  Exception {
        FileSystem fs = MyUtils.getFileSystem();
        // 读取HDFS上的文件内容   输入流
        FSDataInputStream fis = fs.open(new Path("/word.txt"));
        // 跳过指定的字节数据   大小
        fis.skip(3);
        // 可以将字节数组封装成缓存字符流
        BufferedReader br = new BufferedReader(new InputStreamReader(fis));
        String line = null ;
        long len = 0l ;
        // 一行一行的加载数据
        while ((line = br.readLine())!=null){
            len +=line.length() ;
            System.out.println(line);
            if (len>=1024*1024){
                break;
            }
        }
        // 读取一个字节
       /* int read1 = fis.read();
        int read2 = fis.read();
        System.out.println(read2);*/
        fis.seek(1);
       // fis.skip(1) ;
    /*    int read = fis.read();
        System.out.println(read); //101*/


        fs.close();

    }
}
